﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ServiceSATT;
using ApplicationContext;

namespace UI_SATT
{
    public partial class FrmJugadorCategoria : Form, IListadoCategorias, IListadoAfiliadoCategoria
    {
        string ImplementaCategoria = "CategoriaService";
        string ImplementaAfiliadoCategoria = "AfiliadoCategoriaService";
        public FrmJugadorCategoria()
        {
            InitializeComponent();
        }

        private void FrmJugadorCategoria_Load(object sender, EventArgs e)
        {
            ICategoriaService CategoriaServicio = (ICategoriaService)AppContext.Instance.GetObject(ImplementaCategoria);
            CategoriaServicio.Lista(this);
        }

        private void BtnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void CboCategorias_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = true;
        }

        private void CboCategorias_SelectionChangeCommitted(object sender, EventArgs e)
        {
            IAfiliadoCategoriaService AfiliadoCategoriaServicio = (IAfiliadoCategoriaService)AppContext.Instance.GetObject(ImplementaAfiliadoCategoria);
            AfiliadoCategoriaServicio.Listar(this);
        }

        #region Miembros de IListadoCategorias

        public List<string> Lista
        {
            set 
            {
                CboCategorias.DataSource = value;
                CboCategorias.SelectedIndex = -1;
            }
        }

        #endregion

        #region Miembros de IListadoAfiliadoCategoria

        public string Categoria
        {
            get { return CboCategorias.SelectedItem.ToString(); }
        }

        string[][] IListadoAfiliadoCategoria.Lista
        {
            set 
            {
                if (DgvEstadisticas.ColumnCount == 0)
                {
                    DgvEstadisticas.Columns.Add("Pos", "Pos");
                    DgvEstadisticas.Columns.Add("Dni", "N° de Jugador");
                    DgvEstadisticas.Columns.Add("ApeNom", "Apellido y Nombre");
                    DgvEstadisticas.Columns.Add("FechaNac", "Fecha de Nac.");
                    DgvEstadisticas.Columns.Add("PJ", "PJ");
                    DgvEstadisticas.Columns.Add("PG", "PG");
                    DgvEstadisticas.Columns.Add("PP", "PP");
                    DgvEstadisticas.Columns.Add("Puntos", "Puntos");
                }
                if (DgvEstadisticas.RowCount > 0)
                    DgvEstadisticas.Rows.Clear();
                foreach (string[] Objeto in value)
                {
                    DgvEstadisticas.Rows.Add(Objeto);
                }
            }
        }

        #endregion

        private void BtnImprimir_Click(object sender, EventArgs e)
        {
            if (DgvEstadisticas.RowCount > 0)
            {
                ReporteSATT.ReporteRankig imprimir = new ReporteSATT.ReporteRankig();
                try
                {
                    imprimir.ListadoRanking(ReporteSATT.TipoRanking.Varones).PrintToPrinter(0,false,0,1000);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else
                MessageBox.Show("No hay datos en la grilla para generar Reporte.");
        }
    }
}
